编程题Check for Palindromes(检查是否为回文)

FreeCodeCamp中文社区刷题答案及笔记


题目

如果给定的字符串是回文,返回true,反之,返回false。

如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。

注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。

函数参数的值可以为”racecar”,”RaceCar”和”race CAR”。

测试要求

palindrome(“eye”) 应该返回一个布尔值
palindrome(“eye”) 应该返回 true.
palindrome(“race car”) 应该返回 true.
palindrome(“not a palindrome”) 应该返回 false.
palindrome(“A man, a plan, a canal. Panama”) 应该返回 true.
palindrome(“never odd or even”) 应该返回 true.
palindrome(“nope”) 应该返回 false.
palindrome(“almostomla”) 应该返回 false.
palindrome(“My age is 0, 0 si ega ym.”) 应该返回 true.
palindrome(“1 eye for of 1 eye.”) 应该返回 false.
palindrome(“0_0 (: /-\ :) 0-0”) 应该返回 true.

解决方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function palindrome(str) {
var lowStr=str.replace(/[\W_]/g,"").toLowerCase();
var arr=lowStr.split("");
var newStr=arr.reverse().join("");
if(newStr==lowStr){
return true;
}else{
return false;
}
}
//方法2
function palindrome(str) {
var newStr=str.replace(/[\W_]/g,"").toLowerCase();
for(var i =0;i<newStr.length/2;i++){
if(newStr.charAt(i) != newStr.charAt(newStr.length-1-i)){
return false;
}
}
return true;
}

str.replace(/[\W_]/g,””).toLowerCase();去除给定字符串中多余的字符,并转为小写。转化为数组以后使用数组的reverse方法进行反转。

------------- 本文结束 感谢您的阅读-------------

本文标题:编程题Check for Palindromes(检查是否为回文)

文章作者:一只白~

发布时间:2019年02月18日 - 23:02

最后更新:2019年02月18日 - 23:02

原始链接:http://yoursite.com/2019/02/18/编程题Check for Palindromes(检查是否为回文)/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。